Skip to main content
Version: 1.3.0

LOR API Documentation

Directory APIs

Root Directory Retrieval Endpoint

  • Method: GET
  • Path: https://api.kadal.ai/cl/api/v1/directory/root
  • Summary: Gets the root directory for the current tenant.

Description

Returns the root directory information for a tenant if it exists.

Request

  • Query Parameters
    ParameterDescriptionData TypeAllowed ValuesRequired
    ext_user_id_refExternal user ID referencestringUUIDsoptional

Response

{
"status_code": "200",
"message": "Root directory found",
"data": [{
"name": "root_ABC12",
"folder_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"type": "Folder",
"is_private": false,
"custom_metadata": {}
}]
}

Usage

import requests

url = "https://api.kadal.ai/cl/api/v1/directory/root"
token = "YOUR_TOKEN"

headers = {
"Authorization": f"Bearer {token}"
}

response = requests.get(url, headers=headers)
print(response.json())

Root Directory Creation Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v1/directory/root
  • Summary: Creates a root directory for a tenant.

Description

Creates a root directory for a tenant. The root directory will be named as root_{tenant_code}.

Request

  • Query Parameters
    ParameterDescriptionData TypeAllowed ValuesRequired
    ext_user_id_refExternal user ID referencestringUUIDsoptional
  • Payload
    FieldTypeDescriptionValidation
    tenant_codestringTenant identifier5 character alphanumeric code

Response

{
"status_code": "201",
"message": "Successfully created root directory"
}
  • Other Responses
    • 409 Conflict: Can't create duplicate root directory

Usage

import requests

url = "https://api.kadal.ai/cl/api/v1/directory/root"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"tenant_code": "ABC12"
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Directory Retrieval Endpoint

  • Method: GET
  • Path: https://api.kadal.ai/cl/api/v1/directory/{folder_id}
  • Summary: Gets information about a specific directory.

Description

Gets folder information for a specific directory and shows information for all children present inside the requested directory.

Request

  • Query Parameters
    • folder_id (path): UUID of the directory to retrieve
    • sorting_by (query, optional): Sort result by title or modified_date (default: updated_at)
    • order (query, optional): Sort order (asc/desc, default: asc)
    • ext_user_id_ref (query, optional): External user ID reference

Response

{
"status_code": "200",
"message": "Child directory found.",
"data": [{
"name": "Directory Name",
"folder_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"type": "Folder",
"is_private": false,
"custom_metadata": {},
"children": []
}]
}

Directory Metadata Update Endpoint

  • Method: PUT
  • Path: https://api.kadal.ai/cl/api/v1/directory/{folder_id}
  • Summary: Updates metadata of a directory.

Description

Updates metadata of a directory that is other than a root directory. All fields are optional for update, but at least one field should be provided.

Request

  • Query Parameters
    • folder_id (path): UUID of the directory to update
    • ext_user_id_ref (query, optional): External user ID reference
  • Payload
{
"name": "Updated Name",
"is_private": true,
"type": "Folder",
"custom_metadata": {
"kvp": {},
"tags": [],
"taxonomy": []
}
}

Response

{
"status_code": "200",
"message": "Successfully updated child directory"
}

Usage

import requests

folder_id = "1ea3d628-f555-41c7-8101-c56a65087bab"
url = f"https://api.kadal.ai/cl/api/v1/directory/root/children/{folder_id}"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"name": "Updated Folder",
"is_private": True,
"type": "Module",
"custom_metadata": {
"kvp": {"key1": "updated_value"},
"tags": ["new_tag"],
"taxonomy": [{"uuid": "new_value", "title": "new_title"}]
}
}

response = requests.put(url, headers=headers, json=payload)
print(response.json())

Child Directories Addition Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v1/directory/{folder_id}
  • Summary: Adds directories to an existing directory.

Description

Adds one or more directories to a parent directory. The parent directory can be a root directory or any other existing directory.

Request

  • Query Parameters
    • folder_id: UUID of the parent directory
    • ext_user_id_ref (optional): External user ID reference
  • Payload
{
"directory_structure": [{
"name": "New Directory",
"is_private": false,
"type": "Folder",
"custom_metadata": {
"kvp": {},
"tags": [],
"taxonomy": []
},
"children": []
}]
}

Response

{
"status_code": "201",
"message": "Successfully added directories"
}
  • Other Responses
    • 206 Partial Content: Some directories added successfully

Usage

import requests

folder_id = "1ea3d628-f555-41c7-8101-c56a65087bab"
url = f"https://api.kadal.ai/cl/api/v1/directory/root/children/{folder_id}"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"directory_structure": [{
"name": "Folder 1",
"is_private": False,
"type": "Folder",
"children": [],
"custom_metadata": {
"kvp": {"key1": "value1"},
"tags": ["tag1"],
"taxonomy": [{"uuid": "value1", "title": "value2"}]
}
}]
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Directory Deletion Endpoint

  • Method: DELETE
  • Path: https://api.kadal.ai/cl/api/v1/directory/{folder_id}
  • Summary: Deletes a directory and its contents.

Description

Deletes a directory that is other than a root directory and all its underlying directories.

Request

  • Query Parameters
    • folder_id (path): UUID of the directory to delete
    • ext_user_id_ref (query, optional): External user ID reference

Response

{
"status_code": "200",
"message": "Successfully deleted directory"
}

Usage

import requests

token = "YOUR_TOKEN"
folder_id = "1ea3d628-f555-41c7-8101-c56a65087bab"
url = f"https://api.kadal.ai/cl/api/v1/directory/root/children/{folder_id}"
headers = {
"Authorization": f"Bearer <token>"
}

response = requests.delete(url, headers=headers)
print(response.json())

Bulk Directory Retrieval Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v1/directory/details/bulk
  • Summary: Gets information about multiple directories.

Description

Gets folder information for multiple folders and shows information for all children present inside each requested directory.

Request

  • Query Parameters
    • ext_user_id_ref (optional): External user ID reference
  • Payload
{
"folder_ids": [
"1ea3d628-f555-41c7-8101-c56a65087bab",
"2fb4d839-g666-52d8-9212-d67b76198bac"
]
}

Response

{
"status_code": "200",
"message": "Directories found",
"data": [{
"name": "Directory Name",
"folder_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"type": "Folder",
"is_private": false,
"custom_metadata": {},
"children": []
}]
}

Directory Search Endpoint

  • Method: POST
  • Path: https://api.kadal.ai//cl/api/v1/directory/aggregate/details
  • Summary: Searches for directories based on a query string.

Description

Gets all folder information for a tenant matching the search criteria.

Request

  • Query Parameters
    • query_string (optional): Query string to search for folders
    • sort_by (optional): Sorting field (default: updated_at)
    • order (optional): Sort order (default: asc)
    • page_no (optional): Page number (default: 1)
    • page_size (optional): Page size (default: 20)
    • ext_user_id_ref (optional): External user ID reference

Response

{
"status_code": "200",
"message": "Directories found",
"data": {
"total": 50,
"page": 1,
"size": 20,
"results": [{
"name": "Directory Name",
"folder_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"type": "Folder",
"is_private": false,
"custom_metadata": {}
}]
}
}

My Folder APIs

My Folder Upsert Endpoint

  • Method: GET
  • Path: https://api.kadal.ai/cl/api/v1/my_folder
  • Summary: Gets a user's private folder or creates it if it doesn't exist.

Description

Gets the private folder of a user. If the private folder does not exist, it will be created.

Response

{
"status_code": "200",
"message": "Successfully retrieved my_folder",
"my_folder_directory_id": "0ad38b25-f71a-48e5-b649-c912a5350f40"
}
  • Other Responses
    • 404 Not Found: Root directory not found (required to create my_folder)

Notes

  • The my_folder directory is created as a private folder under the tenant's root directory
  • The folder has chat_interface_only: true set in its custom metadata
  • Only the owner can access their my_folder directory

Usage

import requests

url = "https://api.kadal.ai/cl/api/v1/my_folder"
headers = {
"Authorization": "Bearer <your_token>"
}

response = requests.get(url, headers=headers)
print(response.json())

Objects V2 APIs

Object Creation Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v2/objects
  • Summary: Creates a new object in the repository.

Description

Creates a new object in the object repository. The source_category under system_metadata can be KnowledgeBase/Guideline/OutputTemplate.

Request

  • Payload

    FieldTypeDescriptionValidation
    object_idstringOptional UUID for the objectUUID format
    titlestringObject titleRequired
    descriptionstringObject descriptionOptional
    system_metadataobjectSystem metadataRequired
    system_metadata.sourcestringSource of the objectRequired
    system_metadata.source_categorystringCategory (KnowledgeBase/Guideline/OutputTemplate)Required
    system_metadata.is_privatebooleanPrivacy flagRequired
    system_metadata.mime_typestringMIME type of objectRequired for files
    system_metadata.file_extensionstringFile extensionRequired for files
    system_metadata.file_sizenumberSize in bytesRequired for files
    system_metadata.is_latest_versionbooleanLatest version flagRequired
    custom_metadataobjectCustom metadataOptional
    custom_metadata.kvpobjectKey-value pairsOptional
    custom_metadata.tagsarrayTags listOptional
    custom_metadata.taxonomyarrayTaxonomy informationOptional
    {
    "object_id": "optional-uuid-if-client-wants-to-specify",
    "title": "Object Title",
    "description": "Object Description",
    "system_metadata": {
    "source": "KnowledgeBase",
    "source_category": "Guideline",
    "is_private": false,
    "mime_type": "application/pdf",
    "file_extension": "pdf",
    "file_size": 1024,
    "is_latest_version": true
    },
    "custom_metadata": {
    "kvp": {
    "key1": "value1"
    },
    "tags": [
    "tag1"
    ],
    "taxonomy": [
    {
    "uuid": "taxonomy-id",
    "title": "Taxonomy Title"
    }
    ]
    }
    }

Response

{
"status": "200",
"message": "Object created successfully",
"data": {
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"version_id": "v1"
}
}

Usage

import requests

url = "https://api.kadal.ai/cl/api/v2/objects"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"title": "Object Title",
"description": "Object Description",
"system_metadata": {
"source": "KnowledgeBase",
"source_category": "Guideline",
"is_private": False,
"mime_type": "application/pdf",
"file_extension": "pdf",
"file_size": 1024,
"is_latest_version": True
},
"custom_metadata": {
"kvp": {"key1": "value1"},
"tags": ["tag1"],
"taxonomy": [{"uuid": "taxonomy-id", "title": "Taxonomy Title"}]
}
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Object Update Endpoint

  • Method: PUT
  • Path: https://api.kadal.ai/cl/api/v2/objects/{object_id}
  • Summary: Updates an existing object's latest version.

Description

Updates an object in the repository. Can update metadata and content.

Request

  • Query Parameters
    • object_id (path): UUID of the object to update
  • Payload
    FieldTypeDescriptionValidation
    titlestringUpdated titleOptional
    descriptionstringUpdated descriptionOptional
    system_metadataobjectUpdated system metadataOptional
    system_metadata.is_privatebooleanUpdated privacy flagOptional
    system_metadata.mime_typestringUpdated MIME typeOptional
    system_metadata.file_extensionstringUpdated file extensionOptional
    system_metadata.file_sizenumberUpdated size in bytesOptional
    custom_metadataobjectUpdated custom metadataOptional
    custom_metadata.kvpobjectUpdated key-value pairsOptional
    custom_metadata.tagsarrayUpdated tags listOptional
    custom_metadata.taxonomyarrayUpdated taxonomy infoOptional
    {
    "title": "Updated Title",
    "description": "Updated Description",
    "system_metadata": {
    "is_private": true,
    "mime_type": "application/pdf",
    "file_extension": "pdf",
    "file_size": 2048
    },
    "custom_metadata": {
    "kvp": {
    "key1": "updated_value"
    },
    "tags": [
    "new_tag"
    ],
    "taxonomy": [
    {
    "uuid": "new-taxonomy-id",
    "title": "New Taxonomy"
    }
    ]
    }
    }

Response

{
"status": "200",
"message": "Object updated successfully",
"data": {
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"version_id": "v2"
}
}

Usage

import requests

object_id = "1ea3d628-f555-41c7-8101-c56a65087bab"
url = f"https://api.kadal.ai/cl/api/v2/objects/{object_id}"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"title": "Updated Title",
"description": "Updated Description",
"system_metadata": {
"is_private": True,
"mime_type": "application/pdf",
"file_extension": "pdf",
"file_size": 2048
},
"custom_metadata": {
"kvp": {"key1": "updated_value"},
"tags": ["new_tag"],
"taxonomy": [{"uuid": "new-taxonomy-id", "title": "New Taxonomy"}]
}
}

response = requests.put(url, headers=headers, json=payload)
print(response.json())

Object Retrieval Endpoint

  • Method: GET
  • Path: https://api.kadal.ai/cl/api/v2/objects/{object_id}
  • Summary: Retrieves an object by ID.

Description

Gets object details including all metadata and versions.

Request

  • Query Parameters
    • object_id (path): UUID of the object to retrieve

Response

{
"status": "200",
"message": "Object found",
"data": {
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"title": "Object Title",
"description": "Object Description",
"system_metadata": {
"source": "KnowledgeBase",
"source_category": "Guideline",
"is_private": false,
"mime_type": "application/pdf",
"file_extension": "pdf",
"file_size": 1024,
"is_latest_version": true,
"created_by": "user-id",
"created_by_name": "User Name",
"created_at": "2024-08-05T12:31:23.939Z",
"updated_by": "user-id",
"updated_by_name": "User Name",
"updated_at": "2024-08-05T18:36:02.772Z"
},
"custom_metadata": {
"kvp": {
"key1": "value1"
},
"tags": [
"tag1"
],
"taxonomy": [
{
"uuid": "taxonomy-id",
"title": "Taxonomy Title"
}
]
},
"versions": [
{
"version_id": "v1",
"created_at": "2024-08-05T12:31:23.939Z",
"created_by": "user-id",
"created_by_name": "User Name"
}
]
}
}

Usaage

import requests

object_id = "1ea3d628-f555-41c7-8101-c56a65087bab"
url = f"https://api.kadal.ai/cl/api/v1/objects/{object_id}"
headers = {
"Authorization": "Bearer <your_token>"
}

response = requests.get(url, headers=headers)
print(response.json())

Object Deletion Endpoint

  • Method: DELETE
  • Path: https://api.kadal.ai/cl/api/v2/objects/{object_id}
  • Summary: Deletes an object from the repository.

Description

Deletes the specified object and all its versions.

Request

  • Query Parameters

    • object_id (path): UUID of the object to delete

Response

{
"status": "200",
"message": "Object deleted successfully"
}

Usage

import requests

object_id = "1ea3d628-f555-41c7-8101-c56a65087bab"
url = f"https://api.kadal.ai/cl/api/v2/objects/{object_id}"
headers = {
"Authorization": "Bearer <your_token>"
}

response = requests.delete(url, headers=headers)
print(response.json())

Objects Listing Endpoint

  • Method: GET
  • Path: https://api.kadal.ai/cl/api/v2/objects
  • Summary: Lists all objects in the repository.

Description

Gets a paginated list of all objects.

Request

  • Query Parameters
    • page (optional): Page number (default: 1)
    • size (optional): Items per page (default: 20)
    • sort_by (optional): Field to sort by (title/updated_at)
    • order (optional): Sort order (asc/desc)

Response

{
"status": "200",
"message": "Objects found",
"data": {
"total": 50,
"page": 1,
"size": 20,
"results": [
{
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"title": "Object Title",
"description": "Object Description",
"system_metadata": {
"source": "KnowledgeBase",
"source_category": "Guideline",
"is_private": false,
"mime_type": "application/pdf",
"file_extension": "pdf",
"file_size": 1024,
"is_latest_version": true,
"created_at": "2024-08-05T12:31:23.939Z",
"updated_at": "2024-08-05T18:36:02.772Z"
},
"custom_metadata": {
"kvp": {
"key1": "value1"
},
"tags": ["tag1"],
"taxonomy": [{
"uuid": "taxonomy-id",
"title": "Taxonomy Title"
}]
}
}
]
}
}

Usage

import requests

url = "https://api.kadal.ai/cl/api/v2/objects"
headers = {
"Authorization": "Bearer <your_token>"
}
params = {
"page": 1,
"size": 20,
"sort_by": "title",
"order": "asc"
}

response = requests.get(url, headers=headers, params=params)
print(response.json())

Chunks V2 APIs

Chunk Search Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v2/chunks/search
  • Summary: Search for chunks based on similarity search.

Description

Performs a semantic similarity search across chunks.

Request

{
"query": "search text",
"filters": {
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"chunk_type": "text",
"metadata": {
"key": "value"
}
},
"top_k": 10
}

Response

{
"status_code": "200",
"message": "Chunks found",
"data": {
"chunks": [{
"chunk_id": "chunk123",
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"content": "chunk content",
"metadata": {
"key": "value"
},
"chunk_type": "text",
"similarity_score": 0.95
}]
}
}

Usage

import requests

url = "https://api.kadal.ai/cl/api/v2/chunks/search"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"query": "search text",
"filters": {
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"chunk_type": "text"
},
"top_k": 10
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Chunk Creation Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v2/chunks
  • Summary: Creates a new chunk in the repository.

Description

Creates a new chunk with content and metadata.

Request

  • Payload
    FieldTypeDescriptionValidation
    object_idstringUUID of the associated objectRequired, UUID format
    contentstringChunk contentRequired
    metadataobjectMetadata for the chunkOptional
    metadata.keystringMetadata keyOptional
    metadata.valuestringMetadata valueOptional
    chunk_typestringType of the chunkRequired, Enum: text, file
    embeddingobjectEmbedding informationRequired for vector chunks
    embedding.vectorarrayVector array (float)Required for vector chunks
    embedding.modelstringModel used for embeddingRequired for vector chunks
    {
    "object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
    "content": "chunk content",
    "metadata": {
    "key": "value"
    },
    "chunk_type": "text",
    "embedding": {
    "vector": [0.1, 0.2, 0.3],
    "model": "gte-small"
    }
    }

Response

{
"status_code": "201",
"message": "Chunk created",
"data": {
"chunk_id": "chunk123"
}
}

Usage

import requests
import numpy as np

url = "https://api.kadal.ai/cl/api/v2/chunks"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"content": "chunk content",
"metadata": {"key": "value"},
"chunk_type": "text",
"embedding": {
"vector": np.random.rand(384).tolist(), # Example vector
"model": "gte-small"
}
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Chunk Update Endpoint

  • Method: PUT
  • Path: https://api.kadal.ai/cl/api/v2/chunks/{chunk_id}
  • Summary: Updates an existing chunk.

Description

Updates content or metadata of an existing chunk.

Request

  • Query Parameters
    • chunk_id (path): ID of the chunk to update
  • Payload
    {
    "content": "updated content",
    "metadata": {
    "key": "new_value"
    }
    }

Response

{
"status_code": "200",
"message": "Chunk updated"
}

Usage

import requests

chunk_id = "chunk123"
url = f"https://api.kadal.ai/cl/api/v2/chunks/{chunk_id}"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"content": "updated content",
"metadata": {"key": "new_value"}
}

response = requests.put(url, headers=headers, json=payload)
print(response.json())

Chunk Deletion Endpoint

  • Method: DELETE
  • Path: https://api.kadal.ai/cl/api/v2/chunks/{chunk_id}
  • Summary: Deletes a chunk.

Description

Removes a chunk from the repository.

Request

  • Query Parameters
    • chunk_id (path): ID of the chunk to delete

Response

{
"status_code": "200",
"message": "Chunk deleted"
}

Usage

import requests

chunk_id = "chunk123"
url = f"https://api.kadal.ai/cl/api/v2/chunks/{chunk_id}"
headers = {
"Authorization": "Bearer <your_token>"
}

response = requests.delete(url, headers=headers)
print(response.json())

Bulk Chunks Creation Endpoint

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v2/chunks/bulk
  • Summary: Creates multiple chunks in a single request.

Description

Bulk creation of chunks.

Request

{
"chunks": [{
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"content": "chunk content 1",
"metadata": {
"key": "value1"
}
},
{
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"content": "chunk content 2",
"metadata": {
"key": "value2"
}
}]
}

Response

{
"status_code": "201",
"message": "Chunks created",
"data": {
"chunk_ids": ["chunk123", "chunk124"]
}
}

Usage

import requests

url = "https://api.kadal.ai/cl/api/v2/chunks/bulk"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"chunks": [{
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"content": "chunk content 1",
"metadata": {"key": "value1"}
},
{
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"content": "chunk content 2",
"metadata": {"key": "value2"}
}]
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())

Bulk Chunks Deletion Endpoint

  • Method: DELETE
  • Path: https://api.kadal.ai/cl/api/v2/chunks/object/bulk
  • Summary: Deletes all chunks for an object.

Description

Removes all chunks associated with specified objects.

Request

{
"object_ids": [
"1ea3d628-f555-41c7-8101-c56a65087bab",
"2fb4d839-g666-52d8-9212-d67b76198bac"
]
}

Response

{
"status_code": "200",
"message": "Object chunks deleted"
}

Usage

import requests

url = "https://api.kadal.ai/cl/api/v2/chunks/object/bulk"
headers = {
"Authorization": "Bearer <your_token>"
}
payload = {
"object_ids": [
"1ea3d628-f555-41c7-8101-c56a65087bab",
"2fb4d839-g666-52d8-9212-d67b76198bac"
]
}

response = requests.delete(url, headers=headers, json=payload)
print(response.json())

File Upload V3 APIs

Upload Files

  • Method: POST
  • Path: https://api.kadal.ai/cl/api/v3/file_upload
  • Summary: Upload files to the chat interface.

Description

Uploads files to the chat interface with support for various file types.

Request

  • Query Parameters
    • files (form-data, required): List of files to upload
    • folder_id (query, required): The my folder ID where files should be uploaded
    • source_category (query, required): Category of the source (KnowledgeBase/Guideline/OutputTemplate/InputFile)
    • session_id (query, required): Chat interface session ID

Response

{
"status_code": "200",
"message": "Files uploaded successfully",
"data": {
"files": [{
"file_name": "document.pdf",
"object_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"status": "uploaded"
}]
}
}
  • Other Responses
    • 413 Payload Too Large: File size exceeds limit
    • 415 Unsupported Media Type: Invalid file type

Usage

import requests

url = "https://api.kadal.ai/cl/api/v3/file_upload"
headers = {
"Authorization": "Bearer <your_token>"
}
params = {
"folder_id": "1ea3d628-f555-41c7-8101-c56a65087bab",
"source_category": "KnowledgeBase",
"session_id": "5678"
}
files = {
'files': [
('document.pdf', open('document.pdf', 'rb'), 'application/pdf'),
('image.jpg', open('image.jpg', 'rb'), 'image/jpeg')
]
}

response = requests.post(url, headers=headers, params=params, files=files)
print(response.json())